//
//  BaseViewController.h
//  Bettle
//
//  Created by panhongliu on 2016/12/30.
//  Copyright © 2016年 panhongliu. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "WRBButton.h"
#import "WRBQuickControl.h"
#import "JXTAlertTools.h"
//刷新用
#define cunrrenIndex [NSString stringWithFormat:@"%d",self.currentIndex]
typedef void(^TableViewHeaderFresh)(void);

typedef void(^TableViewFooterFresh)(void);

/**
 *  选中table的Block
 */
typedef void (^DidSelectCellBlock)(NSIndexPath *indexPath) ;

@interface BaseViewController : UIViewController
@property(nonatomic,retain)UITableView *tableview;
@property(nonatomic,strong)UICollectionView * collectionView;

//table选中事件
@property (nonatomic, copy) DidSelectCellBlock  didSelectCellBlock ;

@property(nonatomic,assign) __block int currentIndex;//当前加载的页面
/**
 *  刷新用
 */
@property(assign,nonatomic)int page;

/**
 *  数据源
 */
@property(nonatomic,strong)NSMutableArray *dataArray;

/**
 *  重写标题
 *
 *   标题文字
 */
-(void)setTitle:(NSString *)title;

/**
 *  设置背景色
 *
 *  view背景色
 */

-(void)setViewBackgroundColor:(UIColor *)color;

//初始化table

-(void)customTableView;



/**
 *  tableView下拉刷新
 *
 *  @param fresh 刷新Block
 */
-(void)setTableHeaderRefresh:(TableViewHeaderFresh)fresh;


/**
 *  collectionView下拉刷新
 *
 *  @param fresh 刷新Block
 */
-(void)setCollectionViewHeaderRefresh:(TableViewHeaderFresh)fresh;

/**
 *  设置tableView上拉加载控件
 *
 *  @param block 回调的block
 */
-(void)setFooterfresh:(TableViewFooterFresh )block;

/**
 *  设置collectionView上拉加载控件
 *
 *  @param block 回调的block
 */
-(void)setCollectionViewFooterfresh:(TableViewFooterFresh )block;




/**
 *  tableView结束刷新
 */
-(void)endReFresh;


/**
 *  结束刷新
 */
-(void)collectionViewEndReFresh;

/**
 *  注册Nib文件
 *
 *  @param nibStr nib名字
 */
-(void)registerNib:(NSString *)nibStr;
/**
 *  初始化一个自定义xib的tableView
 *
 *  @param nibString nib名字
 */
-(void)initWithTableViewNib:(NSString *)nibString didSelectCellBlock:(DidSelectCellBlock)block;


-(void)pushNextViewController:(UIViewController *)controller;

/**
 *  添加左侧按钮
 *
 *  @param btnImg 按钮图片
 */
-(void)addLeftBackBtn:(NSString *)btnImg frame:(CGRect)frame;
/**
 *  添加返回按钮
 *
 *  btnImg 自己设置一个固定的返回 按钮图片
 */
-(void)addBackBtn;


/**
 *  返回按钮事件
 *
 *  @param btn 按钮事件
 */
-(void)backBtn:(WRBButton *)btn;


- (void)addProgressHUD;


/*********************************************请求框架已经处理默认的提示框可不用如特殊需求可以自己用***************************************
 比如调用了hideMBProgress又想提示自定义文字
 
 
 **/

/**
 *  显示加载框
 *
 *  @param statusLable 显示加载的文字 不写为空
 */
-(void)showWithStatus:(NSString *)statusLable;

//删除提示文字
-(void)removeStatuslable;

/**
 *  显示成功的提示框
 *
 *  @param success 提示文字
 */
-(void)showSuccess:(NSString *)success;
/**
 *  网络请求失败提示框
 *
 *  @param failed 请求失败的提示文字
 */
-(void)showFailed:(NSString *)failed;


@end
